/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package domain.controllers;


import domain.Entity.EntityProyecto;
import domain.Entity.EntityTarea;
import domain.Entity.EntityTareaTrabajada;
import domain.Entity.EntityTrabajador;
import domain.Entity.EntityUsuario;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import managers.TareaManager;
import managers.TrabajoManager;
import managers.UsuarioManager;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.view.RedirectView;

/**
 *
 * @author jorge
 */
public class obtenerTareaController implements Controller{
    
    TareaManager tm = TareaManager.getInstance();
    UsuarioManager um = UsuarioManager.getInstance();
    TrabajoManager trm = TrabajoManager.getInstance();
    
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        
        ModelAndView mav = new ModelAndView();
       HttpSession session = request.getSession();
        EntityUsuario eu = (EntityUsuario) session.getAttribute("usuario");
        if(eu == null){
            mav.setView(new RedirectView("login.htm"));
            return mav;
        }else{
       
        long idTarea = Integer.parseInt(request.getParameter("idTarea"));
        EntityTarea et = tm.getPorId(idTarea);
        String tipo = request.getParameter("tipo");
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        String fechaInicial = null;
        String fechaFinal = null;
        if(et.getFecha_ini() !=null){
            fechaInicial = sdf.format(et.getFecha_ini());
        }
        if(et.getFecha_fin() !=null){
            fechaFinal = sdf.format(et.getFecha_fin());
        }
        if(tipo.equals("modificar")){
            List l = tm.obtenerEtiquetas(eu);
            session.setAttribute("etiquetas", l);
            session.setAttribute("fecIni", fechaInicial);
            session.setAttribute("fecFin", fechaFinal);
            session.setAttribute("tarea", et);
            mav.setView(new RedirectView("modificarTarea.htm"));
        }else if(tipo.equals("ver")){
            
            List tiempos = trm.obtenerTiempos(et);
            session.setAttribute("tiempostrabajados", tiempos);
            session.setAttribute("fecIni", fechaInicial);
            session.setAttribute("fecFin", fechaFinal);
            session.setAttribute("tarea", et);
            mav.setView(new RedirectView("verTarea.htm"));
        }else if(tipo.equals("borrar")){
            tm.borrarTarea(et.getIdTarea());
            mav.setView(new RedirectView("mostrarTareas.htm"));
        }else if(tipo.equals("tiempo")){
            session.setAttribute("tarea", et);
            mav.setView(new RedirectView("modificarTiempo.htm"));
        }else if(tipo.equals("completar")){
            et.setCompletado(true);
            tm.completar(et);
            mav.setView(new RedirectView("mostrarTareas.htm"));
        }else if(tipo.equals("etiqueta")){
            EntityTrabajador etr = (EntityTrabajador) session.getAttribute("trabajadorUsuario");
            List l = tm.obtenerEtiquetas(etr.getEg());
            session.setAttribute("etiquetas", l);
            session.setAttribute("tarea", et);
            mav.setView(new RedirectView("etiquetar.htm"));
        }
        
        return mav;
        
        }
    }
}